#include <QtCore/QTextCodec>
#include <QtGui/QApplication>


#include "global.h"
#include "../GUI/mainwindow.h"
#include "../Core/jeu.h"

int main (int argc, char** argv) {

    QApplication a(argc, argv);

	// Réglage de l'encodage
	QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
	QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
	QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));


	MainWindow fenetre;
	Jeu j;

    // Connections des signaux
	QObject::connect(&fenetre, SIGNAL(signalQuitter()), &j, SIGNAL(sig_quitter()));
	QObject::connect(&fenetre, SIGNAL(signalQuitter()), qApp, SLOT(quit()));
	QObject::connect(&fenetre, SIGNAL(nouvellePartie(QString, Types::TypesJoueurs, QString, Types::TypesJoueurs)), &j, SLOT(init(QString, Types::TypesJoueurs, QString, Types::TypesJoueurs)));
    QObject::connect(&j, SIGNAL(sig_init(Joueur*, Joueur*)), &fenetre, SLOT(lancerNouvellePartie(Joueur*, Joueur*)));
    QObject::connect(&j, SIGNAL(sig_nbGrainesModifies(int,int)), &fenetre, SIGNAL(transmitRefreshCase(int,int)));
    QObject::connect(&j, SIGNAL(sig_tour(Joueur*)), &fenetre, SLOT(nouveauTour(Joueur*)));
    QObject::connect(&j,SIGNAL(sig_tourJoue(int,int)), &fenetre, SIGNAL(transmitTourJoue(int,int)));
	QObject::connect(&j, SIGNAL(sig_partieFinie(Joueur*,Joueur*)), &fenetre, SLOT(partieFinie(Joueur*,Joueur*)));

	fenetre.showMaximized();

    return a.exec();
}
